import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: mac
 * Date: 2022-09-20
 * Time: 23:31
 */
public class TestDemo {
    public static void main(String[] args) {
        MyQueue queue = new MyQueue();
        queue.offer(1);
        queue.offer(2);
        queue.offer(3);
        System.out.println(queue.peek());
        System.out.println(queue.poll());
        System.out.println(queue.poll());
        System.out.println(queue.poll());
        queue.poll();
    }
    public static void main3(String[] args) {
        Deque<Integer> deque = new LinkedList<>();
        deque.offerLast(1);//默认队尾入队
        deque.offerFirst(2);
        //2,1
        System.out.println(deque.peekFirst());//2
        System.out.println(deque.peekLast());//1
        //LinkedList，不仅可以当做普通队列，也可以当做双端队列，也可以当做双向链表，也可以当作栈
        //全能 - 方法巨多
        //LinkedList跟arrayList的区别是什么？
        //1.共性，增删查改
        //2.内存的逻辑来说
    }
    public static void main2(String[] args) {
        Queue<Integer> queue = new LinkedList<>();
        queue.add(1);
        queue.offer(2);//用得最多的
        System.out.println(queue.peek());//*
        System.out.println(queue.element());//1
        System.out.println(queue.poll());//*
        System.out.println(queue.remove());//2
    }
    //双端队列 - 双向链表
    public static void main1(String[] args) {
        Queue<Integer> queue = new LinkedList<>();
        Deque<Integer> deque = new LinkedList<>();
        LinkedList<Integer> list = new LinkedList<>();
        //从上往下方法越来越多，因为它不仅实现了接口的方法，还实现的自己打方法
    }
}
